{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f5a296e3",
   "metadata": {},
   "source": [
    "# macaw-large\n",
    "\n",
    "## Model description\n",
    "\n",
    "Macaw (<b>M</b>ulti-<b>a</b>ngle <b>c</b>(q)uestion <b>a</b>ns<b>w</b>ering) is a ready-to-use model capable of\n",
    "general question answering,\n",
    "showing robustness outside the domains it was trained on. It has been trained in \"multi-angle\" fashion,\n",
    "which means it can handle a flexible set of input and output \"slots\"\n",
    "(question, answer, multiple-choice options, context, and explanation) .\n",
    "\n",
    "Macaw was built on top of [T5](https://github.com/google-research/text-to-text-transfer-transformer) and comes in\n",
    "three sizes: macaw-11b, macaw-3b,\n",
    "and macaw-large, as well as an answer-focused version featured on\n",
    "various leaderboards macaw-answer-11b.\n",
    "\n",
    "See https://github.com/allenai/macaw for more details."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27cf8ebc",
   "metadata": {},
   "source": [
    "## How to Use"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "027c735c",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install --upgrade paddlenlp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8f52c07a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import paddle\n",
    "from paddlenlp.transformers import AutoModel\n",
    "\n",
    "model = AutoModel.from_pretrained(\"allenai/macaw-large\")\n",
    "input_ids = paddle.randint(100, 200, shape=[1, 20])\n",
    "decoder_input_ids = paddle.randint(100, 200, shape=[1, 20])\n",
    "print(model(input_ids, decoder_input_ids=decoder_input_ids))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ce759903",
   "metadata": {},
   "source": [
    "## Reference\n",
    "\n",
    "> The model introduction and model weights originate from [https://huggingface.co/allenai/macaw-large](https://huggingface.co/allenai/macaw-large) and were converted to PaddlePaddle format for ease of use in PaddleNLP."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
